/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package zonasoft.Manejadores;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import zonasoft.Conceptos.Especiales.Barrio;
import zonasoft.Conceptos.Especiales.Localidad;
import zonasoft.Conceptos.Especiales.UnidadComunera;

/**
 *
 * @author Usuario
 */
public class ManejadorLugar {
public static Connection con;
     public static Connection conm;


    private static List listaBarrios;
    public static List getBarrios(){
    return listaBarrios;
    }

    public static List listarBarrios() throws SQLException, Exception{
    ResultSet rs = null;
     PreparedStatement pst = null;
     listaBarrios = new LinkedList();
   try{
      pst = (PreparedStatement) con.prepareStatement(" SELECT * FROM `barrio` ORDER BY `barrio`.`nombre` ASC");
//       pst = con.prepareStatement("select * from departamentos");
     rs = pst.executeQuery();
     while (rs.next()){
         listaBarrios.add(Barrio.load(rs));
            }
  } finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
        return listaBarrios;
   }
 } // fin del listado

    public static List listarBarriosByUnidadComu(String idUnidad) throws SQLException, Exception{
    ResultSet rs = null;
     PreparedStatement pst = null;
     listaBarrios = new LinkedList();
   try{
      pst = (PreparedStatement) con.prepareStatement(" SELECT barrio.idBarrio,barrio.iducdg,barrio.nombre,barrio.descripcion" +
              " FROM zonificacion.barrio " +
              " INNER JOIN zonificacion.udegobierno " +
              " ON (barrio.iducdg = udegobierno.codigo) " +
              " WHERE udegobierno.codigo = ?");
   
       pst.setString(1, idUnidad);
     rs = pst.executeQuery();
     while (rs.next()){
         listaBarrios.add(Barrio.load(rs));
            }
  } finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
        return listaBarrios;
   }
 }

    //------------------------------------------------------------------------------------------------------
    // inicio  del listado
    private static List listaLocalidad;
    private static List unidadesDeGob;
    public static List getLocalidad(){
    return listaLocalidad;
    }
    public static List listarLocalidad(String idBarrio) throws SQLException, Exception{
    ResultSet rs = null;
     PreparedStatement pst = null;
     listaLocalidad = new LinkedList();
   try{
//      pst = (PreparedStatement) con.prepareStatement(" SELECT m.nombre FROM municipios m, departamentos d WHERE d.codigo =1 AND m.cod_departamentos = d.codigo");
       pst = (PreparedStatement) con.prepareStatement(" select u.nombre as comuna, l.nombre as localidad from barrio b, udegobierno u, localidad l where b.idBarrio = ? && u.codigo = b.iducdg && l.codigo = u.idlocalidad");
       pst.setString(1, idBarrio);

//       pst = con.prepareStatement("select * from departamentos");
     rs = pst.executeQuery();
     while (rs.next()){
//         System.out.println("Si trae resultados-->");
         listaLocalidad.add(Localidad.load2(rs));

            }

  }catch(Exception e){
  e.printStackTrace();
  }
   finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
        return listaLocalidad;
}



} // fin del listado

     public static List listarLocalidadByMunicipio(String idMunicipio) throws SQLException, Exception{
    ResultSet rs = null;
     PreparedStatement pst = null;
     listaLocalidad = new LinkedList();
   try{
//      pst = (PreparedStatement) con.prepareStatement(" SELECT m.nombre FROM municipios m, departamentos d WHERE d.codigo =1 AND m.cod_departamentos = d.codigo");
       pst = (PreparedStatement) con.prepareStatement("SELECT localidad.codigo,localidad.nombre,localidad.idmunicipio " +
               "FROM zonificacion.localidad " +
               " INNER JOIN zonificacion.municipios " +
               " ON (localidad.idmunicipio = municipios.codigo) " +
               " WHERE municipios.codigo = ?");

       pst.setString(1, idMunicipio);

//       pst = con.prepareStatement("select * from departamentos");
     rs = pst.executeQuery();
     while (rs.next()){
//         System.out.println("Si trae resultados-->");
         listaLocalidad.add(Localidad.load(rs));

            }

  }catch(Exception e){
  e.printStackTrace();
  }
   finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
        return listaLocalidad;
}



} // fin del listado

 public static List listarUnidadComuneraByLocalidad(String idLocalidad) throws SQLException, Exception{
    ResultSet rs = null;
     PreparedStatement pst = null;
     unidadesDeGob = new LinkedList();
   try{
//      pst = (PreparedStatement) con.prepareStatement(" SELECT m.nombre FROM municipios m, departamentos d WHERE d.codigo =1 AND m.cod_departamentos = d.codigo");
       pst = (PreparedStatement) con.prepareStatement("SELECT udegobierno.codigo,udegobierno.nombre,udegobierno.idlocalidad " +
               "FROM zonificacion.udegobierno " +
               " INNER JOIN zonificacion.localidad " +
               " ON (udegobierno.idlocalidad = localidad.codigo) " +
               " WHERE localidad.codigo = ?");

       pst.setString(1, idLocalidad);

//       pst = con.prepareStatement("select * from departamentos");
     rs = pst.executeQuery();
     while (rs.next()){
//         System.out.println("Si trae resultados-->");
         unidadesDeGob.add(UnidadComunera.load(rs));

            }

  }catch(Exception e){
  e.printStackTrace();
  }
   finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
        return unidadesDeGob;
}



} // fin del listado

 public static String[] getDatosLugar(String idBarrio) throws SQLException, Exception{
    ResultSet rs = null;
     PreparedStatement pst = null;
     String[] datos=new String[2];
   try{
//      pst = (PreparedStatement) con.prepareStatement(" SELECT m.nombre FROM municipios m, departamentos d WHERE d.codigo =1 AND m.cod_departamentos = d.codigo");
       pst = (PreparedStatement) con.prepareStatement(" select u.nombre as comuna, l.nombre as localidad from barrio b, udegobierno u, localidad l where b.idBarrio = ? && u.codigo = b.iducdg && l.codigo = u.idlocalidad");
       pst.setString(1, idBarrio);

//       pst = con.prepareStatement("select * from departamentos");
     rs = pst.executeQuery();
     while (rs.next()){
            datos[0]=rs.getString(2);
            datos[1]=rs.getString(1);
            }

  }catch(Exception e){
  e.printStackTrace();
  }
   finally {
        if (rs != null) {
           rs.close();
       }
        if (pst != null) {
          pst.close();
       }
        return datos;
}
 }
}
